﻿using Autofac.Extras.DynamicProxy;
using Simple.Common;
using Simple.Entity.Dto;
using Simple.Entity.Entity;
using Simple.Entity.Params;
using Simple.Tools;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Simple.IService
/// <summary>
/// 版 本 钢易智企2.0 V 2.0.0 钢易智企2.0
/// Copyright (c) 2023 杭州钢易科技有限公司
/// 创建人：曾东明
/// 日 期：2024
/// 描 述：
/// </summary>
{
	[Intercept(typeof(CustomAutofacAop))]
	public interface IRoleService
	{
		/// <summary>
		/// 创建角色
		/// </summary>
		/// <param name="roleDto"></param>
		/// <returns></returns>
		public  Task<Common.BaseMessage> AddAsync(RoleDto roleDto);

		/// <summary>
		/// 更新角色
		/// </summary>
		/// <param name="roleDto"></param>
		/// <returns></returns>
		public  Task<Common.BaseMessage> UpdateAsync(long Id, RoleDto roleDto);

		/// <summary>
		/// 删除角色
		/// </summary>
		/// <param name="Id"></param>
		/// <returns></returns>
		public  Task<Common.BaseMessage> SoftDeleteAsync(long Id);

		/// <summary>
		/// 删除角色菜单
		/// </summary>
		/// <param name="Id">角色菜单关联id</param>
		/// <returns></returns>
		public  Task<Common.BaseMessage> DeleteMenuAsync(long Id);


		/// <summary>
		/// 绑定角色菜单
		/// </summary>
		/// <param name="Id"></param>
		/// <returns></returns>
		public  Task<Common.BaseMessage> BindMenuAsync(RoleDto roleDto);

		/// <summary>
		/// 分页查询
		/// </summary>
		/// <param name="Params"></param>
		/// <returns></returns>
		public Task<Common.BaseMessage> GetPageAsync(RoleParameter Params);

	}
}
